home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / sound / asoundef.h < prev    next >
C/C++ Source or Header  |  2006-01-09  |  10KB  |  228 lines

  1. #ifndef __SOUND_ASOUNDEF_H
  2. #define __SOUND_ASOUNDEF_H
  3.  
  4. /*
  5.  *  Advanced Linux Sound Architecture - ALSA - Driver
  6.  *  Copyright (c) 1994-2000 by Jaroslav Kysela <perex@suse.cz>
  7.  *
  8.  *
  9.  *   This program is free software; you can redistribute it and/or modify
  10.  *   it under the terms of the GNU General Public License as published by
  11.  *   the Free Software Foundation; either version 2 of the License, or
  12.  *   (at your option) any later version.
  13.  *
  14.  *   This program is distributed in the hope that it will be useful,
  15.  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  *   GNU General Public License for more details.
  18.  *
  19.  *   You should have received a copy of the GNU General Public License
  20.  *   along with this program; if not, write to the Free Software
  21.  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  22.  *
  23.  */
  24.  
  25. /****************************************************************************
  26.  *                                                                          *
  27.  *        Digital audio interface                        *
  28.  *                                                                          *
  29.  ****************************************************************************/
  30.  
  31. /* AES/IEC958 channel status bits */
  32. #define IEC958_AES0_PROFESSIONAL    (1<<0)    /* 0 = consumer, 1 = professional */
  33. #define IEC958_AES0_NONAUDIO        (1<<1)    /* 0 = audio, 1 = non-audio */
  34. #define IEC958_AES0_PRO_EMPHASIS    (7<<2)    /* mask - emphasis */
  35. #define IEC958_AES0_PRO_EMPHASIS_NOTID    (0<<2)    /* emphasis not indicated */
  36. #define IEC958_AES0_PRO_EMPHASIS_NONE    (1<<2)    /* none emphasis */
  37. #define IEC958_AES0_PRO_EMPHASIS_5015    (3<<2)    /* 50/15us emphasis */
  38. #define IEC958_AES0_PRO_EMPHASIS_CCITT    (7<<2)    /* CCITT J.17 emphasis */
  39. #define IEC958_AES0_PRO_FREQ_UNLOCKED    (1<<5)    /* source sample frequency: 0 = locked, 1 = unlocked */
  40. #define IEC958_AES0_PRO_FS        (3<<6)    /* mask - sample frequency */
  41. #define IEC958_AES0_PRO_FS_NOTID    (0<<6)    /* fs not indicated */
  42. #define IEC958_AES0_PRO_FS_44100    (1<<6)    /* 44.1kHz */
  43. #define IEC958_AES0_PRO_FS_48000    (2<<6)    /* 48kHz */
  44. #define IEC958_AES0_PRO_FS_32000    (3<<6)    /* 32kHz */
  45. #define IEC958_AES0_CON_NOT_COPYRIGHT    (1<<2)    /* 0 = copyright, 1 = not copyright */
  46. #define IEC958_AES0_CON_EMPHASIS    (7<<3)    /* mask - emphasis */
  47. #define IEC958_AES0_CON_EMPHASIS_NONE    (0<<3)    /* none emphasis */
  48. #define IEC958_AES0_CON_EMPHASIS_5015    (1<<3)    /* 50/15us emphasis */
  49. #define IEC958_AES0_CON_MODE        (3<<6)    /* mask - mode */
  50. #define IEC958_AES1_PRO_MODE        (15<<0)    /* mask - channel mode */
  51. #define IEC958_AES1_PRO_MODE_NOTID    (0<<0)    /* not indicated */
  52. #define IEC958_AES1_PRO_MODE_STEREOPHONIC (2<<0) /* stereophonic - ch A is left */
  53. #define IEC958_AES1_PRO_MODE_SINGLE    (4<<0)    /* single channel */
  54. #define IEC958_AES1_PRO_MODE_TWO    (8<<0)    /* two channels */
  55. #define IEC958_AES1_PRO_MODE_PRIMARY    (12<<0)    /* primary/secondary */
  56. #define IEC958_AES1_PRO_MODE_BYTE3    (15<<0)    /* vector to byte 3 */
  57. #define IEC958_AES1_PRO_USERBITS    (15<<4)    /* mask - user bits */
  58. #define IEC958_AES1_PRO_USERBITS_NOTID    (0<<4)    /* not indicated */
  59. #define IEC958_AES1_PRO_USERBITS_192    (8<<4)    /* 192-bit structure */
  60. #define IEC958_AES1_PRO_USERBITS_UDEF    (12<<4)    /* user defined application */
  61. #define IEC958_AES1_CON_CATEGORY    0x7f
  62. #define IEC958_AES1_CON_GENERAL        0x00
  63. #define IEC958_AES1_CON_EXPERIMENTAL    0x40
  64. #define IEC958_AES1_CON_SOLIDMEM_MASK    0x0f
  65. #define IEC958_AES1_CON_SOLIDMEM_ID    0x08
  66. #define IEC958_AES1_CON_BROADCAST1_MASK 0x07
  67. #define IEC958_AES1_CON_BROADCAST1_ID    0x04
  68. #define IEC958_AES1_CON_DIGDIGCONV_MASK 0x07
  69. #define IEC958_AES1_CON_DIGDIGCONV_ID    0x02
  70. #define IEC958_AES1_CON_ADC_COPYRIGHT_MASK 0x1f
  71. #define IEC958_AES1_CON_ADC_COPYRIGHT_ID 0x06
  72. #define IEC958_AES1_CON_ADC_MASK    0x1f
  73. #define IEC958_AES1_CON_ADC_ID        0x16
  74. #define IEC958_AES1_CON_BROADCAST2_MASK 0x0f
  75. #define IEC958_AES1_CON_BROADCAST2_ID    0x0e
  76. #define IEC958_AES1_CON_LASEROPT_MASK    0x07
  77. #define IEC958_AES1_CON_LASEROPT_ID    0x01
  78. #define IEC958_AES1_CON_MUSICAL_MASK    0x07
  79. #define IEC958_AES1_CON_MUSICAL_ID    0x05
  80. #define IEC958_AES1_CON_MAGNETIC_MASK    0x07
  81. #define IEC958_AES1_CON_MAGNETIC_ID    0x03
  82. #define IEC958_AES1_CON_IEC908_CD    (IEC958_AES1_CON_LASEROPT_ID|0x00)
  83. #define IEC958_AES1_CON_NON_IEC908_CD    (IEC958_AES1_CON_LASEROPT_ID|0x08)
  84. #define IEC958_AES1_CON_PCM_CODER    (IEC958_AES1_CON_DIGDIGCONV_ID|0x00)
  85. #define IEC958_AES1_CON_SAMPLER        (IEC958_AES1_CON_DIGDIGCONV_ID|0x20)
  86. #define IEC958_AES1_CON_MIXER        (IEC958_AES1_CON_DIGDIGCONV_ID|0x10)
  87. #define IEC958_AES1_CON_RATE_CONVERTER    (IEC958_AES1_CON_DIGDIGCONV_ID|0x18)
  88. #define IEC958_AES1_CON_SYNTHESIZER    (IEC958_AES1_CON_MUSICAL_ID|0x00)
  89. #define IEC958_AES1_CON_MICROPHONE    (IEC958_AES1_CON_MUSICAL_ID|0x08)
  90. #define IEC958_AES1_CON_DAT        (IEC958_AES1_CON_MAGNETIC_ID|0x00)
  91. #define IEC958_AES1_CON_VCR        (IEC958_AES1_CON_MAGNETIC_ID|0x08)
  92. #define IEC958_AES1_CON_ORIGINAL    (1<<7)    /* this bits depends on the category code */
  93. #define IEC958_AES2_PRO_SBITS        (7<<0)    /* mask - sample bits */
  94. #define IEC958_AES2_PRO_SBITS_20    (2<<0)    /* 20-bit - coordination */
  95. #define IEC958_AES2_PRO_SBITS_24    (4<<0)    /* 24-bit - main audio */
  96. #define IEC958_AES2_PRO_SBITS_UDEF    (6<<0)    /* user defined application */
  97. #define IEC958_AES2_PRO_WORDLEN        (7<<3)    /* mask - source word length */
  98. #define IEC958_AES2_PRO_WORDLEN_NOTID    (0<<3)    /* not indicated */
  99. #define IEC958_AES2_PRO_WORDLEN_22_18    (2<<3)    /* 22-bit or 18-bit */
  100. #define IEC958_AES2_PRO_WORDLEN_23_19    (4<<3)    /* 23-bit or 19-bit */
  101. #define IEC958_AES2_PRO_WORDLEN_24_20    (5<<3)    /* 24-bit or 20-bit */
  102. #define IEC958_AES2_PRO_WORDLEN_20_16    (6<<3)    /* 20-bit or 16-bit */
  103. #define IEC958_AES2_CON_SOURCE        (15<<0)    /* mask - source number */
  104. #define IEC958_AES2_CON_SOURCE_UNSPEC    (0<<0)    /* unspecified */
  105. #define IEC958_AES2_CON_CHANNEL        (15<<4)    /* mask - channel number */
  106. #define IEC958_AES2_CON_CHANNEL_UNSPEC    (0<<4)    /* unspecified */
  107. #define IEC958_AES3_CON_FS        (15<<0)    /* mask - sample frequency */
  108. #define IEC958_AES3_CON_FS_44100    (0<<0)    /* 44.1kHz */
  109. #define IEC958_AES3_CON_FS_48000    (2<<0)    /* 48kHz */
  110. #define IEC958_AES3_CON_FS_32000    (3<<0)    /* 32kHz */
  111. #define IEC958_AES3_CON_CLOCK        (3<<4)    /* mask - clock accuracy */
  112. #define IEC958_AES3_CON_CLOCK_1000PPM    (0<<4)    /* 1000 ppm */
  113. #define IEC958_AES3_CON_CLOCK_50PPM    (1<<4)    /* 50 ppm */
  114. #define IEC958_AES3_CON_CLOCK_VARIABLE    (2<<4)    /* variable pitch */
  115.  
  116. /*****************************************************************************
  117.  *                                                                           *
  118.  *                            MIDI v1.0 interface                            *
  119.  *                                                                           *
  120.  *****************************************************************************/
  121.  
  122. #define MIDI_CHANNELS            16
  123. #define MIDI_GM_DRUM_CHANNEL        (10-1)
  124.  
  125. /*
  126.  *  MIDI commands
  127.  */
  128.  
  129. #define MIDI_CMD_NOTE_OFF        0x80
  130. #define MIDI_CMD_NOTE_ON        0x90
  131. #define MIDI_CMD_NOTE_PRESSURE        0xa0
  132. #define MIDI_CMD_CONTROL        0xb0
  133. #define MIDI_CMD_PGM_CHANGE        0xc0
  134. #define MIDI_CMD_CHANNEL_PRESSURE    0xd0
  135. #define MIDI_CMD_BENDER            0xe0
  136.  
  137. #define MIDI_CMD_COMMON_SYSEX        0xf0
  138. #define MIDI_CMD_COMMON_MTC_QUARTER    0xf1
  139. #define MIDI_CMD_COMMON_SONG_POS    0xf2
  140. #define MIDI_CMD_COMMON_SONG_SELECT    0xf3
  141. #define MIDI_CMD_COMMON_TUNE_REQUEST    0xf6
  142. #define MIDI_CMD_COMMON_SYSEX_END    0xf7
  143. #define MIDI_CMD_COMMON_CLOCK        0xf8
  144. #define MIDI_CMD_COMMON_START        0xfa
  145. #define MIDI_CMD_COMMON_CONTINUE    0xfb
  146. #define MIDI_CMD_COMMON_STOP        0xfc
  147. #define MIDI_CMD_COMMON_SENSING        0xfe
  148. #define MIDI_CMD_COMMON_RESET        0xff
  149.  
  150. /*
  151.  *  MIDI controllers
  152.  */
  153.  
  154. #define MIDI_CTL_MSB_BANK        0x00
  155. #define MIDI_CTL_MSB_MODWHEEL             0x01
  156. #define MIDI_CTL_MSB_BREATH               0x02
  157. #define MIDI_CTL_MSB_FOOT                 0x04
  158. #define MIDI_CTL_MSB_PORTAMENTO_TIME     0x05
  159. #define MIDI_CTL_MSB_DATA_ENTRY        0x06
  160. #define MIDI_CTL_MSB_MAIN_VOLUME          0x07
  161. #define MIDI_CTL_MSB_BALANCE              0x08
  162. #define MIDI_CTL_MSB_PAN                  0x0a
  163. #define MIDI_CTL_MSB_EXPRESSION           0x0b
  164. #define MIDI_CTL_MSB_EFFECT1        0x0c
  165. #define MIDI_CTL_MSB_EFFECT2        0x0d
  166. #define MIDI_CTL_MSB_GENERAL_PURPOSE1     0x10
  167. #define MIDI_CTL_MSB_GENERAL_PURPOSE2     0x11
  168. #define MIDI_CTL_MSB_GENERAL_PURPOSE3     0x12
  169. #define MIDI_CTL_MSB_GENERAL_PURPOSE4     0x13
  170. #define MIDI_CTL_LSB_BANK        0x20
  171. #define MIDI_CTL_LSB_MODWHEEL            0x21
  172. #define MIDI_CTL_LSB_BREATH               0x22
  173. #define MIDI_CTL_LSB_FOOT                 0x24
  174. #define MIDI_CTL_LSB_PORTAMENTO_TIME     0x25
  175. #define MIDI_CTL_LSB_DATA_ENTRY        0x26
  176. #define MIDI_CTL_LSB_MAIN_VOLUME          0x27
  177. #define MIDI_CTL_LSB_BALANCE              0x28
  178. #define MIDI_CTL_LSB_PAN                  0x2a
  179. #define MIDI_CTL_LSB_EXPRESSION           0x2b
  180. #define MIDI_CTL_LSB_EFFECT1        0x2c
  181. #define MIDI_CTL_LSB_EFFECT2        0x2d
  182. #define MIDI_CTL_LSB_GENERAL_PURPOSE1     0x30
  183. #define MIDI_CTL_LSB_GENERAL_PURPOSE2     0x31
  184. #define MIDI_CTL_LSB_GENERAL_PURPOSE3     0x32
  185. #define MIDI_CTL_LSB_GENERAL_PURPOSE4     0x33
  186. #define MIDI_CTL_SUSTAIN                  0x40
  187. #define MIDI_CTL_PORTAMENTO               0x41
  188. #define MIDI_CTL_SOSTENUTO                0x42
  189. #define MIDI_CTL_SOFT_PEDAL               0x43
  190. #define MIDI_CTL_LEGATO_FOOTSWITCH    0x44
  191. #define MIDI_CTL_HOLD2                    0x45
  192. #define MIDI_CTL_SC1_SOUND_VARIATION    0x46
  193. #define MIDI_CTL_SC2_TIMBRE        0x47
  194. #define MIDI_CTL_SC3_RELEASE_TIME    0x48
  195. #define MIDI_CTL_SC4_ATTACK_TIME    0x49
  196. #define MIDI_CTL_SC5_BRIGHTNESS        0x4a
  197. #define MIDI_CTL_SC6            0x4b
  198. #define MIDI_CTL_SC7            0x4c
  199. #define MIDI_CTL_SC8            0x4d
  200. #define MIDI_CTL_SC9            0x4e
  201. #define MIDI_CTL_SC10            0x4f
  202. #define MIDI_CTL_GENERAL_PURPOSE5         0x50
  203. #define MIDI_CTL_GENERAL_PURPOSE6         0x51
  204. #define MIDI_CTL_GENERAL_PURPOSE7         0x52
  205. #define MIDI_CTL_GENERAL_PURPOSE8         0x53
  206. #define MIDI_CTL_PORTAMENTO_CONTROL    0x54
  207. #define MIDI_CTL_E1_REVERB_DEPTH    0x5b
  208. #define MIDI_CTL_E2_TREMOLO_DEPTH    0x5c
  209. #define MIDI_CTL_E3_CHORUS_DEPTH    0x5d
  210. #define MIDI_CTL_E4_DETUNE_DEPTH    0x5e
  211. #define MIDI_CTL_E5_PHASER_DEPTH    0x5f
  212. #define MIDI_CTL_DATA_INCREMENT           0x60
  213. #define MIDI_CTL_DATA_DECREMENT           0x61
  214. #define MIDI_CTL_NONREG_PARM_NUM_LSB      0x62
  215. #define MIDI_CTL_NONREG_PARM_NUM_MSB      0x63
  216. #define MIDI_CTL_REGIST_PARM_NUM_LSB      0x64
  217. #define MIDI_CTL_REGIST_PARM_NUM_MSB    0x65
  218. #define MIDI_CTL_ALL_SOUNDS_OFF        0x78
  219. #define MIDI_CTL_RESET_CONTROLLERS    0x79
  220. #define MIDI_CTL_LOCAL_CONTROL_SWITCH    0x7a
  221. #define MIDI_CTL_ALL_NOTES_OFF        0x7b
  222. #define MIDI_CTL_OMNI_OFF        0x7c
  223. #define MIDI_CTL_OMNI_ON        0x7d
  224. #define MIDI_CTL_MONO1            0x7e
  225. #define MIDI_CTL_MONO2            0x7f
  226.  
  227. #endif /* __SOUND_ASOUNDEF_H */
  228.